package com.oa.organization.service;

import java.util.List;

import com.oa.organization.dto.OrganizationDto;
import com.oa.organization.dto.OrganizationPieDto;
import com.oa.organization.entity.OrganizationTree;

public interface OrganizationService {
	/*
	 * 返回全部组织部门信息
	 * @return Iterable<OrganizationDto> 组织部门信息
	 */
	Iterable<OrganizationDto> findAllOrganization();

	/*
	 * 通过父部门ID查找子部门
	 * @param parentId 父部门ID
	 * @return List<OrganizationTree> 从属子部门信息
	 */
	List<OrganizationTree> findNodes(Long parentId);

	/*
	 * 获取组织部门圆饼图信息
	 * @return Iterable<OrganizationPieDto> 组织部门圆饼图信息
	 */
	Iterable<OrganizationPieDto> getOrganizationPie();

	/*
	 * 保存组织部门信息
	 * @param organizationDto 待组织部门信息
	 */
	void saveOrUpdateOrganization(OrganizationDto organizationDto);

	/*
	 * 通过组织部门ID删除组织部门信息
	 * @param id 组织部门ID
	 */
	void deleteOrganization(Long id);
}
